<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>整体安全态势评级与核心风险</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        :root {
            --primary: #2E95F8;
            --danger: #FF4D4F;
            --warning: #FAAD14;
            --success: #52C41A;
        }

        * {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }

        body {
            background: #060606;
            color: #E9EAEC;
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
            line-height: 1.6;
        }

        .row {
            display: flex;
            gap: 24px;
            margin-bottom: 24px;
        }

        .col {
            flex: 1;
        }

        .page {
            max-width: 1400px;
            margin: 24px auto;
            padding: 0 16px;
        }

        .header {
            margin-bottom: 24px;
            padding: 24px;
            background-color: #09162F;
            border-radius: 4px;
            border-left: 4px solid var(--danger);
        }

        .header h1 {
            color: #129BFF;
            margin-bottom: 12px;
        }

        .header p {
            color: #A8B5CC;
        }

        .card {
            border-radius: 4px;
            padding: 20px;
            border: 1px solid #1B64AA;
            background: rgba(8, 26, 48, 0.8);
            height: 100%;
        }

        .card-title {
            margin-bottom: 16px;
            font-size: 18px;
            color: #129BFF;
            border-bottom: 1px solid #1B64AA;
            padding-bottom: 8px;
        }

        .card-body {
            color: #D9D9D9;
        }

        .overview {
            display: flex;
            gap: 24px;
            flex-wrap: wrap;
        }

        .overview-item {
            flex: 1;
            min-width: 150px;
            background: rgba(18, 155, 255, 0.1);
            padding: 12px;
            border-radius: 4px;
            border-left: 3px solid var(--primary);
        }

        .overview-item .label {
            font-size: 14px;
            color: #A8B5CC;
            margin-bottom: 8px;
        }

        .overview-item .value {
            font-size: 24px;
            font-weight: bold;
        }

        .module-card {
            background: rgba(8, 26, 48, 0.6);
            border: 1px solid #1B64AA;
            border-radius: 4px;
            padding: 16px;
            margin-bottom: 16px;
        }

        .module-card h3 {
            color: var(--primary);
            margin-bottom: 12px;
            font-size: 16px;
        }

        ul,
        ol {
            padding-left: 24px;
            margin-bottom: 16px;
        }

        li {
            margin-bottom: 8px;
        }

        .chart-container {
            position: relative;
            height: 300px;
            width: 100%;
        }

        .risk-badge {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 12px;
            font-weight: bold;
            margin-right: 8px;
        }

        .risk-high {
            background-color: var(--danger);
            color: white;
        }

        .risk-medium {
            background-color: var(--warning);
            color: #333;
        }

        .risk-low {
            background-color: var(--success);
            color: white;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            margin: 16px 0;
        }

        th,
        td {
            border: 1px solid #1B64AA;
            padding: 12px;
            text-align: left;
        }

        th {
            background-color: rgba(18, 155, 255, 0.1);
            color: #129BFF;
        }

        tr:nth-child(even) {
            background-color: rgba(8, 26, 48, 0.4);
        }

        @media (max-width: 768px) {
            .row {
                flex-direction: column;
            }

            .overview {
                flex-direction: column;
            }
        }
    </style>
</head>

<body>

    <div class="page">

        <!-- 头部 -->
        <div class="header">
            <h1>整体安全态势评级与核心风险</h1>
            <p>整体安全态势评级为高危，主要由于攻击类型集中度、攻击量激增和关键资产暴露面显著。</p>
        </div>

        <div class="main">

            <!-- 概览卡片 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">安全概览</h2>
                        <div class="card-body">
                            <div class="overview">
                                <div class="overview-item">
                                    <div class="label">总攻击量</div>
                                    <div class="value">2,242</div>
                                </div>
                                <div class="overview-item">
                                    <div class="label">高危攻击</div>
                                    <div class="value">1,582</div>
                                </div>
                                <div class="overview-item">
                                    <div class="label">权限提升攻击</div>
                                    <div class="value">1,711</div>
                                </div>
                                <div class="overview-item">
                                    <div class="label">风险资产</div>
                                    <div class="value">5</div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 核心风险 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">核心风险</h2>
                        <div class="card-body">
                            <ul>
                                <li><span
                                        class="risk-badge risk-high">高危</span>权限提升类攻击（T1548）占总攻击量的75.1%，攻击频率呈斐波那契式增长（日均增长率61.8%）。
                                </li>
                                <li><span class="risk-badge risk-high">高危</span>CentOS Linux 8.2.2004资产风险值（5031）是Windows
                                    8系统总和（429）的11.8倍，暴露面高度集中。</li>
                                <li><span class="risk-badge risk-medium">中危</span>80%的受影响资产未提供IP地址，导致攻击溯源能力受限。</li>
                                <li><span
                                        class="risk-badge risk-high">高危</span>5月14日16:28-16:32的5次权限提升事件与当日总攻击量存在时间重叠，需警惕攻击链升级。
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 三列布局 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">攻击类型分布</h2>
                        <div class="card-body">
                            <div class="chart-container">
                                <canvas id="attackTypeChart"></canvas>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">资产风险对比</h2>
                        <div class="card-body">
                            <div class="chart-container">
                                <canvas id="assetRiskChart"></canvas>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">防护建议</h2>
                        <div class="card-body">
                            <ol>
                                <li>立即补充资产IP信息并建立资产画像数据库。</li>
                                <li>部署基于ATT&CK框架的权限提升攻击实时检测规则。</li>
                                <li>对CentOS Linux 8.2.2004资产实施网络隔离与最小权限策略。</li>
                                <li>建立攻击类型关联分析模型，监控权限提升后的横向移动行为。</li>
                            </ol>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 资产分析 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">资产态势分析</h2>
                        <div class="card-body">
                            <h3>资产分布特征：</h3>
                            <ul>
                                <li>CentOS Linux 8.2.2004资产占总攻击命中次数的73.8%（1677/2242），其风险值（5031）为Windows
                                    8系统总和（429）的11.8倍。</li>
                                <li>Windows 8系统存在3个独立资产ID，合计攻击次数429次，但IP地址均未提供。</li>
                            </ul>

                            <h3>资产信息缺失影响：</h3>
                            <ul>
                                <li>5个受影响资产中，仅k8s-master1（IP: 10.254.178.168）提供IP地址，其余4个资产未补充网络标识信息。</li>
                                <li>IP缺失导致无法通过网络层溯源攻击源，且无法实施基于IP的访问控制策略。</li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 攻击趋势 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">攻击趋势分析</h2>
                        <div class="card-body">
                            <div class="chart-container">
                                <canvas id="attackTrendChart"></canvas>
                            </div>
                            <h3>攻击量激增分析：</h3>
                            <ul>
                                <li>5月14日攻击量（1086次）较5月13日（605次）增长80%（481次/605次），较5月12日（70次）增长15.5倍（1086/70）。</li>
                                <li>5月10日至14日攻击量增长曲线：44 → 64 → 70 → 605 → 1086。</li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 模块化分析 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">模块化安全事件分析</h2>
                        <div class="card-body">
                            <div class="module-card">
                                <h3>模块1：权限提升攻击（T1548）</h3>
                                <ul>
                                    <li><span class="risk-badge risk-high">高危</span>攻击特征：技术编号T1548，攻击量1711次（高危1582次 +
                                        中危129次），全部集中于CentOS Linux 8.2.2004资产。</li>
                                    <li>攻击路径推测：攻击者通过SUID权限程序获取root权限，利用权限提升后执行Linux At命令或可疑脚本。</li>
                                    <li>防御缺口：SUID权限程序未定期扫描，缺乏对root用户执行SUID程序的实时监控规则。</li>
                                </ul>
                            </div>

                            <div class="module-card">
                                <h3>模块2：Linux At命令滥用（T1053）</h3>
                                <ul>
                                    <li><span
                                            class="risk-badge risk-low">低危</span>攻击特征：技术编号T1053，攻击量256次（低危），主要集中在CentOS
                                        Linux 8.2.2004资产（占比92.3%）。</li>
                                    <li>防御建议：禁用非必要at服务，部署基于时间戳的异常任务检测规则。</li>
                                </ul>
                            </div>

                            <div class="module-card">
                                <h3>模块3：可疑脚本执行（T1218）</h3>
                                <ul>
                                    <li><span
                                            class="risk-badge risk-low">低危</span>攻击特征：技术编号T1218，攻击量164次（低危），主要集中在Windows
                                        8系统（占比98.2%）。</li>
                                    <li>防御建议：限制脚本执行权限，部署脚本内容完整性校验机制。</li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 详细防护措施 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">防护建议详细措施</h2>
                        <div class="card-body">
                            <h3>资产信息完善与溯源能力提升：</h3>
                            <ul>
                                <li>补充IP地址，完善资产数据库字段，对重复主机名称的资产ID进行物理主机关联性分析。</li>
                            </ul>

                            <h3>权限提升攻击防御强化：</h3>
                            <ul>
                                <li>定期扫描SUID/SGID权限程序，部署基于文件哈希的完整性校验机制，优先拦截root用户执行SUID程序的行为。</li>
                            </ul>

                            <h3>Windows 8系统风险缓解：</h3>
                            <ul>
                                <li>禁用wscript/cscript执行权限，限制At命令的使用范围，检查系统是否安装最新安全补丁。</li>
                            </ul>

                            <h3>攻击链关联分析与响应优化：</h3>
                            <ul>
                                <li>建立ATT&CK技术关联图谱，对5月14日16:28-16:32的5次权限提升事件进行日志回溯。</li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 附录 -->
            <div class="row">
                <div class="col">
                    <div class="card">
                        <h2 class="card-title">附录：关键数据计算说明</h2>
                        <div class="card-body">
                            <table>
                                <tr>
                                    <th>指标</th>
                                    <th>计算公式</th>
                                    <th>示例</th>
                                </tr>
                                <tr>
                                    <td>风险值</td>
                                    <td>风险值 = 命中次数 × 威胁等级系数</td>
                                    <td>CentOS Linux: 1677 × 3 = 5031</td>
                                </tr>
                                <tr>
                                    <td>攻击量增长率</td>
                                    <td>增长率 = (当日攻击量 - 前日攻击量) / 前日攻击量 × 100%</td>
                                    <td>(1086 - 605)/605 × 100% = 80%</td>
                                </tr>
                                <tr>
                                    <td>斐波那契预测</td>
                                    <td>预测攻击量 = 前日攻击量 × 1.618</td>
                                    <td>1086 × 1.618 ≈ 1738</td>
                                </tr>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="footer"
            style="margin-top: 40px; padding: 20px; text-align: center; color: #A8B5CC; font-size: 14px;">
            <p>安全态势报告 © 2023 - 生成时间: 2023-05-15</p>
        </div>
    </div>

    <script>
        // 攻击类型分布图
        const attackTypeCtx = document.getElementById('attackTypeChart').getContext('2d');
        const attackTypeChart = new Chart(attackTypeCtx, {
            type: 'pie',
            data: {
                labels: ['权限提升攻击 (T1548)', '权限提升攻击 (T1548.002)', 'Linux At命令 (T1053)', '可疑脚本执行 (T1218)'],
                datasets: [{
                    data: [1582, 129, 256, 164],
                    backgroundColor: [
                        'rgba(255, 77, 79, 0.8)',
                        'rgba(250, 173, 20, 0.8)',
                        'rgba(82, 196, 26, 0.8)',
                        'rgba(24, 144, 255, 0.8)'
                    ],
                    borderColor: [
                        'rgba(255, 77, 79, 1)',
                        'rgba(250, 173, 20, 1)',
                        'rgba(82, 196, 26, 1)',
                        'rgba(24, 144, 255, 1)'
                    ],
                    borderWidth: 1
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                plugins: {
                    legend: {
                        position: 'right',
                        labels: {
                            color: '#E9EAEC'
                        }
                    },
                    tooltip: {
                        callbacks: {
                            label: function (context) {
                                const label = context.label || '';
                                const value = context.raw || 0;
                                const total = context.dataset.data.reduce((a, b) => a + b, 0);
                                const percentage = Math.round((value / total) * 100);
                                return `${label}: ${value} (${percentage}%)`;
                            }
                        }
                    }
                }
            }
        });

        // 资产风险对比图
        const assetRiskCtx = document.getElementById('assetRiskChart').getContext('2d');
        const assetRiskChart = new Chart(assetRiskCtx, {
            type: 'bar',
            data: {
                labels: ['CentOS Linux 8.2.2004', 'Windows 8 实例1', 'Windows 8 实例2', 'Windows 8 实例3'],
                datasets: [{
                    label: '风险值',
                    data: [5031, 182, 144, 103],
                    backgroundColor: [
                        'rgba(255, 77, 79, 0.8)',
                        'rgba(24, 144, 255, 0.8)',
                        'rgba(24, 144, 255, 0.8)',
                        'rgba(24, 144, 255, 0.8)'
                    ],
                    borderColor: [
                        'rgba(255, 77, 79, 1)',
                        'rgba(24, 144, 255, 1)',
                        'rgba(24, 144, 255, 1)',
                        'rgba(24, 144, 255, 1)'
                    ],
                    borderWidth: 1
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                plugins: {
                    legend: {
                        display: false
                    },
                    tooltip: {
                        callbacks: {
                            label: function (context) {
                                return `风险值: ${context.raw}`;
                            }
                        }
                    }
                },
                scales: {
                    y: {
                        beginAtZero: true,
                        ticks: {
                            color: '#A8B5CC'
                        },
                        grid: {
                            color: 'rgba(27, 100, 170, 0.2)'
                        }
                    },
                    x: {
                        ticks: {
                            color: '#A8B5CC'
                        },
                        grid: {
                            display: false
                        }
                    }
                }
            }
        });

        // 攻击趋势图
        const attackTrendCtx = document.getElementById('attackTrendChart').getContext('2d');
        const attackTrendChart = new Chart(attackTrendCtx, {
            type: 'line',
            data: {
                labels: ['5月10日', '5月11日', '5月12日', '5月13日', '5月14日', '5月15日(预测)'],
                datasets: [{
                    label: '实际攻击量',
                    data: [44, 64, 70, 605, 1086, null],
                    borderColor: 'rgba(255, 77, 79, 1)',
                    backgroundColor: 'rgba(255, 77, 79, 0.1)',
                    borderWidth: 2,
                    fill: true,
                    tension: 0.4
                }, {
                    label: '预测攻击量',
                    data: [null, null, null, null, 1086, 1738],
                    borderColor: 'rgba(250, 173, 20, 1)',
                    backgroundColor: 'rgba(250, 173, 20, 0.1)',
                    borderWidth: 2,
                    borderDash: [5, 5],
                    fill: false,
                    tension: 0.4
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                plugins: {
                    legend: {
                        labels: {
                            color: '#E9EAEC'
                        }
                    },
                    tooltip: {
                        callbacks: {
                            label: function (context) {
                                return `${context.dataset.label}: ${context.raw || '无数据'}`;
                            }
                        }
                    }
                },
                scales: {
                    y: {
                        beginAtZero: true,
                        ticks: {
                            color: '#A8B5CC'
                        },
                        grid: {
                            color: 'rgba(27, 100, 170, 0.2)'
                        }
                    },
                    x: {
                        ticks: {
                            color: '#A8B5CC'
                        },
                        grid: {
                            display: false
                        }
                    }
                }
            }
        });
    </script>
</body>

</html>